SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TASALD_EMPR_Q32]                                            
/*-------------------------------------------------------------------------*/                                            
/*----- Empresa           : OFISIS S.A.                                ----*/                                            
/*----- Cliente           : OFISIS S.A.                                 ----*/                                            
/*----- Sistema           : Contabilidad                               ----*/                                            
/*----- Modulo            : Empresa                                    ----*/                                            
/*----- Programa          : Reporte Inventarios y Balances(DET - AUXI) ----*/                                      
/*----- Nombre            : SP_TASALD_EMPR_Q29                         ----*/                                            
/*----- Script            : TASALD_EMPR                                ----*/                                            
/*----- Desarrollado por  : Percy Garc?a                               ----*/                                            
/*----- Fecha             : 02/02/2004                                 ----*/                                            
/*----- Base de Datos     : SQL 2000                                   ----*/                                            
/*----- Version BD        :                                            ----*/                                            
/*-------------------------------------------------------------------------*/                                        
/*-------------------------------------------------------------------------*/                          
/*----- Modificado 1 por : PDGV                                       -----*/                          
/*----- Fecha Modifica   : 20/12/2008                                 -----*/                          
/*----- Detalle Modifica : correccion caso error BD filtro por unidad   -----*/                          
/*-------------------------------------------------------------------------*/                       
/*-------------------------------------------------------------------------*/                                             
/*----- Drop proc SP_TASALD_EMPR_Q29                                   ----*/                                            
/*----- Grant Execute on SP_TASALD_EMPR_Q29 to PUBLIC                  ----*/                                            
/*----- SP_TASALD_EMPR_Q32 '01', 1, NULL, 2009, 1, 'T', 'G',''                      ----*/                                            
/*-------------------------------------------------------------------------*/                                            
                                            
 @ISCO_EMPR       TD_VC_002,                                            
 @INNU_CNTB_EMPR  TD_IN_001,                                         
 @ISCO_UNID_CNTB  TD_VC_003,                                   
 @INNU_ANNO       TD_IN_004_ANNO,                                            
 @INNU_MESE       TD_IN_002_MESE,                                            
 @ISTI_REPO       TD_VC_001, -- R = reporte T = tabla                                  
 @ISTI_INFO       TD_VC_001,        
 @ISCA_WHER       TD_VC_255             
      
 As                                            
                          
-- Declaro Variables de Trabajo                           
 Begin                                             
 Declare                                            
 @VSCO_CNTA_EMPR     TD_VC_020_CNTA,                                            
 @VSCO_CNTA_0002     TD_VC_020_CNTA,                                            
 @VSCO_CNTA_0003     TD_VC_020_CNTA,                                  
 @CSCO_CNTA_QUIE     TD_VC_020_CNTA,                                            
 @CSCO_CNTA_0003     TD_VC_020_CNTA,                                            
 @CSCO_CNTA_EMPR     TD_VC_020_CNTA,                                       
 @VSCO_CNTA_TEMP     TD_VC_020_CNTA,                                       
 @CSDE_CNTA_EMPR   TD_VC_050,                  
 @CSDE_CNTA_0002     TD_VC_050,                                            
 @CSDE_CNTA_0003    TD_VC_050,                                            
 @CNIM_MVTO_SALD     TD_NU_016_004,                                             
 @VNNU_QUIE_0002     TD_IN_001,                                            
 @VNNU_QUIE_0003     TD_IN_001,                                            
 @VNNU_QUIE_MAXI     TD_IN_001,                                            
 @VNIM_MVTO_ACTI     TD_NU_016_004,                                             
 @VNIM_MVTO_PASI     TD_NU_016_004,                                             
 @VNIM_MVTO_PATR     TD_NU_016_004,                                             
 @VNIM_DEBE_0002     TD_NU_016_004,                                             
 @VNIM_HABE_0002     TD_NU_016_004,                                             
 @VNIM_DEBE_0003     TD_NU_016_004,                                             
 @VNIM_HABE_0003     TD_NU_016_004,                                             
 @VNIM_UTIL          TD_NU_016_004,                                             
 @VSST_FLA1          TD_VC_001,                                             
 @VSST_FLA2          TD_VC_001,                                             
 @VSST_FLA3          TD_VC_001,                                             
 @VSST_FLA4          TD_VC_001,                                          
 @VNFA_VNTA_CNTA     TD_NU_015_006,                                          
 @VNFA_CAMB_CNTA     TD_NU_015_006,                                          
 @VSCO_MONE_UNID     TD_VC_003,                                          
 @VSCO_MONE          TD_VC_003,                                          
 @VNIM_DETA_ORIG     TD_NU_016_004,                                             
 @VNIM_DETA_CNTB     TD_NU_016_004,                                        
 @CSTI_CAMB          TD_VC_003,                                
 @VSCA_WHER_LOCA     TD_VC_255,                                
 @VSCA_WHER_LOC1     TD_VC_255,                                
 @VNIM_CNTA_ORDE     TD_NU_016_004                                 
                                          
                                            
-- TABLA TEMPORAL                                             
 Create Table #TWSALD_EMPR_Q27_1                                            
 (NU_QUIE_0001 Int NULL,                                             
 NU_QUIE_0002  Int NULL,                                             
 DE_QUIE_0002  Varchar(100) NULL,                                             
 CO_CNTA_QUIE  Varchar(20) NULL,                                             
 DE_CNTA_QUIE  Varchar(100) NULL,                                             
 CO_CNTA_EMPR  Varchar(20) NULL,                                             
 DE_CNTA_EMPR  Varchar(100) NULL,                                             
 IM_MVTO_TOTA  Numeric(16, 4) NULL,                                             
 DE_CNTA_0002  Varchar(100) NULL,                                             
 DE_CNTA_0003  Varchar(100) NULL,                                             
 CO_CNTA_0003  Varchar(20) NULL,                                             
 ST_VISU_0003  Varchar(1) NULL,                                             
 IM_DEBE       Numeric(16, 4) NULL,                                             
 IM_HABE       Numeric(16, 4) NULL,                                             
 IM_DEBE_0002  Numeric(16, 4) NULL,                                             
 IM_HABE_0002  Numeric(16, 4) NULL,                                             
 IM_DEBE_0003  Numeric(16, 4) NULL,                                             
 IM_HABE_0003  Numeric(16, 4) NULL,                                             
 TI_AUXI_EMPR  Varchar(1) NULL,                                             
 CO_AUXI_EMPR  Varchar(20) NULL,                    
 TI_DOID_SUNA  Varchar(3)    NULL,                    
 NU_DOCU_SUNA  Varchar(20) NULL,                                             
 NO_AUXI       Varchar(100) NULL,                                    
 FE_DOCU       DateTime NULL,                                             
 TI_DOCU       Varchar(3) NULL,                                     
 NU_DOCU     Varchar(20) NULL,                                             
 IM_DETA_ORIG  Numeric(16, 4) NULL,                                             
 IM_DETA_CNTB  Numeric(16, 4) NULL,                                     
 ST_VISU_DETA  Varchar(1) NULL,                                            
 IM_TOTA_ACTI  Numeric(16, 4) NULL,                                             
 IM_TOTA_PASI  Numeric(16, 4) NULL,                                             
 IM_TOTA_PATR  Numeric(16, 4) NULL,                                             
 CO_MONE       Varchar(3) NULL,                                            
 IM_UTIL       Numeric(16, 4) NULL,                                          
 FA_CAMB Numeric(15,6) NULL, -- FACTOR DE CAMBIO DE CIERRE                                          
 FE_VENC       DateTime NULL,    
 FE_ASTO_CNTB  Datetime NULL)    
                                            
  -- Para obtener el mayor y el menor nivel de quiebre de la tabla de Parametros                               
  Select @VNNU_QUIE_MAXI = NV_INFO_CNTA,                                            
        @VNNU_QUIE_0002 = Convert(Int, SubString(NV_QUIE_CNTA, 1, 2)),                                             
        @VNNU_QUIE_0003 = Convert(Int, SubString(NV_QUIE_CNTA, 3, 2))                                             
  From TMPARA_CONT                                            
  Where CO_EMPR =  @ISCO_EMPR                             
                            
If @ISTI_INFO = 'U'          
 Begin                            
  Select @VSCA_WHER_LOCA = ' And TASALD_EMPR.CO_UNID_CNTB = "' + @ISCO_UNID_CNTB + '" '                                
  Select @VSCA_WHER_LOC1 = ' And T1.CO_UNID_CNTB = "' + @ISCO_UNID_CNTB + '" '                                
 End       
Else       
 Begin                                                    
  Select @VSCA_WHER_LOCA = ''                                             
  Select @VSCA_WHER_LOC1 = ''                                             
 End                                              
 -- Declaro Cursor Acumulado                                            
Exec('Declare CU_TASALD_EMPR_Q27_1 Cursor                                     
  For                                             
Select SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0002 + '),                                     
         SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0003 + '),                                     
         TASALD_EMPR.CO_CNTA_EMPR, Max(t2.DE_CNTA_EMPR),                                             
         Sum(TASALD_EMPR.IM_CARG_CNTB) - Sum(TASALD_EMPR.IM_ABON_CNTB),                                             
         Max(t3.DE_CNTA_EMPR), Max(t4.DE_CNTA_EMPR), MAX(t2.ST_CNTA_CAMB)                                        
  From TASALD_EMPR, TMPLAN_EMPR t2, TMPLAN_EMPR t3, TMPLAN_EMPR t4      
  Where TASALD_EMPR.CO_EMPR =  "' + @ISCO_EMPR + '"                                     
     And TASALD_EMPR.NU_CNTB_EMPR = ' + @INNU_CNTB_EMPR + '                                    
     And TASALD_EMPR.NU_ANNO = ' + @INNU_ANNO + '                                    
     And TASALD_EMPR.NU_MESE <= ' + @INNU_MESE  + @ISCA_WHER + ' ' +        
     @VSCA_WHER_LOCA + '                                      
     And DataLength(TASALD_EMPR.CO_CNTA_EMPR) = ' + @VNNU_QUIE_MAXI + '                                    
     And SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, 2) < "60"                                    
     And TASALD_EMPR.TI_AUXI_EMPR IS NULL                                            
     And TASALD_EMPR.CO_AUXI_EMPR IS NULL           
     And TASALD_EMPR.CO_ORDE_SERV IS NULL                              
     And t2.CO_EMPR = TASALD_EMPR.CO_EMPR                                            
     And t2.CO_CNTA_EMPR = TASALD_EMPR.CO_CNTA_EMPR              
     And t3.CO_EMPR = TASALD_EMPR.CO_EMPR                  
     And t3.CO_CNTA_EMPR = SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0002 + ')                      
     And t4.CO_EMPR = TASALD_EMPR.CO_EMPR                                            
     And t4.CO_CNTA_EMPR = SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0003 + ')                                            
     Group by SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0002 + '), SubString(TASALD_EMPR.CO_CNTA_EMPR, 1, ' + @VNNU_QUIE_0003 + '), TASALD_EMPR.CO_CNTA_EMPR                                     
     Order by 1, 2, 3 ')                                    
                                            
-- Inicializo Variables                                            
    Select @CSCO_CNTA_QUIE = NULL                                             
    Select @CSCO_CNTA_EMPR = NULL                                             
    Select @CSDE_CNTA_EMPR = NULL                              
   Select @CNIM_MVTO_SALD = NULL                                             
    Select @VNNU_QUIE_MAXI = 0                                             
    Select @VNNU_QUIE_0002 = 0                                             
    Select @VNNU_QUIE_MAXI = 0                                             
    Select @VNIM_MVTO_ACTI = 0                                      
    Select @VNIM_MVTO_PASI = 0                                             
    Select @VNIM_MVTO_PATR = 0                                             
    Select @VNIM_UTIL      = 0                          
    Select @VNIM_CNTA_ORDE = 0                                               
    Select @VSST_FLA1      = 'S'                                             
    Select @VSST_FLA2     = 'S'                                             
    Select @VSST_FLA3      = 'S'                                             
    Select @VSST_FLA4      = 'S'                                             
                                            
/*-- OPCION ACUMULADA --*/                                            
  Open CU_TASALD_EMPR_Q27_1                                             
  Fetch CU_TASALD_EMPR_Q27_1 Into @CSCO_CNTA_QUIE, @CSCO_CNTA_0003, @CSCO_CNTA_EMPR,                                                
     @CSDE_CNTA_EMPR, @CNIM_MVTO_SALD, @CSDE_CNTA_0002, @CSDE_CNTA_0003,  @CSTI_CAMB                                             
                                      
                                            
  -- SETEO INICIAL                                             
  Select @VSCO_CNTA_0002 = @CSCO_CNTA_QUIE                                             
  Select @VSCO_CNTA_0003 = @CSCO_CNTA_0003                                             
  Select @VNIM_DEBE_0002 = 0                                             
  Select @VNIM_DEBE_0003 = 0                                             
  Select @VNIM_HABE_0002 = 0                                             
  Select @VSCO_CNTA_EMPR = ''                                             
                                          
  While @@Fetch_status = 0                                            
   Begin                                             
                                          
  -- Inserto los Cuentas de Orden como quiebre 0                                          
  /* -- INICIO CUENTAS DE ORDEN --*/                                            
  If  SubString(@CSCO_CNTA_QUIE, 1, 1) = '0'                                             
   Begin  ---- (A)                                            
    Insert into #TWSALD_EMPR_Q27_1                                            
     (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE,                                             
      CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003, DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003, ST_VISU_DETA)                                            
     Values(1, 0, NULL,  @CSCO_CNTA_QUIE,  @CSCO_CNTA_EMPR, @CSDE_CNTA_EMPR,  @CNIM_MVTO_SALD, @CSCO_CNTA_0003, @CSDE_CNTA_0002, @CSDE_CNTA_0003, 'N', 'N')                                           
  -- ACTUALIZA IMPORTES A 2 DIGITOS             
  If @CSCO_CNTA_QUIE = @VSCO_CNTA_0002                                             
     Begin                                             
     If (@CNIM_MVTO_SALD <> 0 )                                             
        Begin                                             
     Select @VNIM_DEBE_0002 = @VNIM_DEBE_0002 + @CNIM_MVTO_SALD                        
        Select @VNIM_CNTA_ORDE = @VNIM_CNTA_ORDE + @CNIM_MVTO_SALD                                             
        End                                            
     End                                             
  Else                                             
     Begin                                             
     Update #TWSALD_EMPR_Q27_1            
     Set IM_DEBE_0002 = @VNIM_DEBE_0002,                                             
     IM_HABE_0002 = NULL                                             
     Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                            
                                            
     Select @VNIM_DEBE_0002 = @CNIM_MVTO_SALD                                             
     Select @VSCO_CNTA_0002 = @CSCO_CNTA_QUIE                                             
     End                                             
                                            
  End                                             
  /* -- FIN CUENTAS DE ORDEN --*/                                            
                                            
  -- Inserto los Activos como quiebre 1                                               
                                            
  /* -- INICIO CUENTAS DE ACTIVO --*/                                            
  If SubString(@CSCO_CNTA_QUIE, 1, 1) > '0' And @CSCO_CNTA_QUIE < '40'                                             
  Begin /* INICIO CTAS ACTIVO */                     
     -- ACTUALIZA ULTIMA CUENTA ORDEN                                            
                                            
     If @VSST_FLA1 = 'S'                                            
     Begin                                             
       Update #TWSALD_EMPR_Q27_1                                             
       Set IM_DEBE_0002 = @VNIM_DEBE_0002,                                             
       IM_HABE_0002 = NULL                                             
       Where CO_CNTA_QUIE = @VSCO_CNTA_0002                    
     End                                             
                                            
    Insert Into #TWSALD_EMPR_Q27_1                                            
    (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE,                                             
     CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003, DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003, ST_VISU_DETA)                                            
    Values(1, 1, 'ACTIVO',  @CSCO_CNTA_QUIE,  @CSCO_CNTA_EMPR,                                             
     @CSDE_CNTA_EMPR,  @CNIM_MVTO_SALD, @CSCO_CNTA_0003, @CSDE_CNTA_0002, @CSDE_CNTA_0003, 'N', 'N')                                             
                                            
    -- Acumulo el total para los Activos                                            
  If (@CNIM_MVTO_SALD  <> 0)                                             
    Begin                                             
     Select @VNIM_MVTO_ACTI =  @VNIM_MVTO_ACTI +  @CNIM_MVTO_SALD                                             
    End                                            
                                            
    Select @VSCO_CNTA_EMPR = 'X'                                            
    Select @VSCO_CNTA_EMPR = CO_CNTA_EMPR                                             
    From TTCNTA_DOCU                                    
    Where CO_EMPR = @ISCO_EMPR                                             
    And CO_CNTA_EMPR = @CSCO_CNTA_EMPR                                             
                                      
  If @VSCO_CNTA_EMPR != 'X'                                             
    Begin                                   
                          
  Exec('                             
    Insert into #TWSALD_EMPR_Q27_1                                            
    (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003,                                     
     DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003, TI_AUXI_EMPR,CO_AUXI_EMPR,TI_DOID_SUNA,NU_DOCU_SUNA, NO_AUXI, FE_DOCU, FE_VENC, TI_DOCU, NU_DOCU,                                     
     CO_MONE, IM_DETA_ORIG, IM_DETA_CNTB, ST_VISU_DETA,FE_ASTO_CNTB)                                            
     Select 1, 1, "ACTIVO", "'+ @CSCO_CNTA_QUIE +'", "'+ @CSCO_CNTA_EMPR +'", NULL, NULL, "'+ @CSCO_CNTA_0003+'",                                     
     "'+ @CSDE_CNTA_0002 +'", "'+ @CSDE_CNTA_0003 +'", "N", t1.TI_AUXI_EMPR,T1.CO_AUXI_EMPR,MAX(T2.CO_DOCU_SUNA),MAX(t2.NU_DOCU_SUNA), Max(t2.NO_AUXI),                                     
     NULL, NULL, NULL, NULL, NULL, 0.00,                              
     IsNull( SUM( ( ROUND( (FLOOR((ASCII(t1.TI_OPER)/67)) * t1.IM_MVTO_CNTB), 2))), 0) -                            IsNull( SUM( ( ROUND( (FLOOR((65/ASCII(t1.TI_OPER))) * t1.IM_MVTO_CNTB), 2))), 0),  "S"   ,max(t1.FE_ASTO_CNTB )                          
  
       
     From TXMVTO_CNTB t1                      
     Left Outer Join TMAUXI_EMPR t2                    
    On t2.CO_EMPR = t1.CO_EMPR                                 
       And t2.TI_AUXI_EMPR = t1.TI_AUXI_EMPR                                 
       And t2.CO_AUXI_EMPR = t1.CO_AUXI_EMPR                     
     Where t1.CO_EMPR = "'+ @ISCO_EMPR +'"                                    
     And t1.NU_CNTB_EMPR = '+ @INNU_CNTB_EMPR +'                                    
     And t1.NU_ANNO = '+ @INNU_ANNO +'                                    
     And t1.NU_MESE <= '+ @INNU_MESE +                             
     @VSCA_WHER_LOC1 + '                                            
     And t1.CO_CNTA_EMPR = "' + @CSCO_CNTA_EMPR + '"                                    
     And t1.SI_MVTO_CNTB = "APR"                     
     Group By t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR                                  
     Having (IsNull( SUM( ( ROUND( (FLOOR((ASCII(t1.TI_OPER)/67)) * t1.IM_MVTO_CNTB), 2))), 0) -                                              
     IsNull( SUM( ( ROUND( (FLOOR((65/ASCII(t1.TI_OPER))) * t1.IM_MVTO_CNTB), 2))), 0) <> 0) ')                                    
                              End  --  /*--- FIN  If @VSCO_CNTA_EMPR != 'X' ---*/                                            
                                            
  -- ACTUALIZA IMPORTES A 2 DIGITOS                                            
  If @CSCO_CNTA_QUIE = @VSCO_CNTA_0002                                             
     Begin                                           
     If (@CNIM_MVTO_SALD <> 0)                                             
  Begin                                             
        Select @VNIM_DEBE_0002 = @VNIM_DEBE_0002 + @CNIM_MVTO_SALD                                             
        End                                             
     End                            
  Else                                             
   Begin                                             
     If @VSST_FLA1 = 'N'                                             
     Begin                                             
     Update #TWSALD_EMPR_Q27_1                                             
     Set IM_DEBE_0002 = @VNIM_DEBE_0002,                                             
     IM_HABE_0002 = NULL                   
     Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                            
     End                                           
                                            
     Select @VNIM_DEBE_0002 = @CNIM_MVTO_SALD                                             
     Select @VSCO_CNTA_0002 = @CSCO_CNTA_QUIE                                             
   End                                            
                                            
  Select @VSST_FLA1 = 'N'                                             
                           
  End   /* -- FIN CUENTAS DE ACTIVO --*/                                            
                       
                                            
  /* -- INICIO CUENTAS DE PASIVO --*/                                            
                                            
  -- Inserto los Pasivos como quiebre 2                                            
  If  @CSCO_CNTA_QUIE > '39' and  @CSCO_CNTA_QUIE < '50'                                             
  Begin                                        
   -- ACTUALIZA DEBE DE LA ULTIMA CUENTA DE ACTIVO               
   If @VSST_FLA2 = 'S'                                             
     Begin                                             
     Update #TWSALD_EMPR_Q27_1                                             
     Set IM_DEBE_0002 = @VNIM_DEBE_0002,                                             
     IM_HABE_0002 = NULL                                             
     Where CO_CNTA_QUIE = @VSCO_CNTA_0002                     End                                             
                                            
    Insert into #TWSALD_EMPR_Q27_1                                            
    (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE,                                             
     CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003, DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003, ST_VISU_DETA)                         
    Values(2, 1, 'PASIVO',  @CSCO_CNTA_QUIE,  @CSCO_CNTA_EMPR,                 @CSDE_CNTA_EMPR,  @CNIM_MVTO_SALD, @CSCO_CNTA_0003, @CSDE_CNTA_0002, @CSDE_CNTA_0003, 'N','N')                                             
                                            
   -- Acumulo el total para los Pasivos                                            
  If (@CNIM_MVTO_SALD  <> 0)                                             
    Begin                                             
      Select @VNIM_MVTO_PASI =  @VNIM_MVTO_PASI +  @CNIM_MVTO_SALD                                             
    End                                            
                                           
    Select @VSCO_CNTA_EMPR = 'X'  
                                           
    Select @VSCO_CNTA_EMPR = CO_CNTA_EMPR                                             
    From TTCNTA_DOCU                                    
    Where CO_EMPR = @ISCO_EMPR                                             
    And CO_CNTA_EMPR = @CSCO_CNTA_EMPR                                             
                                      
-- DETALLE DE LAS CUENTAS DE PASIVO                                      
 If @VSCO_CNTA_EMPR != 'X'                                             
    Begin                                          
    Exec( 'Insert into #TWSALD_EMPR_Q27_1                                            
     (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE,                                             
     CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003, DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003,                                           
     TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOID_SUNA,NU_DOCU_SUNA,NO_AUXI, FE_DOCU, FE_VENC, TI_DOCU, NU_DOCU, CO_MONE, IM_DETA_ORIG, IM_DETA_CNTB, ST_VISU_DETA,FE_ASTO_CNTB)                                            
     Select 2, 1, "PASIVO", "'+ @CSCO_CNTA_QUIE +'", "'+ @CSCO_CNTA_EMPR +'", NULL, NULL, "'+ @CSCO_CNTA_0003 +'",                                     
     "'+ @CSDE_CNTA_0002 +'", "'+ @CSDE_CNTA_0003 +'", "N", t1.TI_AUXI_EMPR,T1.CO_AUXI_EMPR,MAX(T2.CO_DOCU_SUNA),MAX(t2.NU_DOCU_SUNA),Max(t2.NO_AUXI),                                     
     NULL, NULL, NULL, NULL, NULL, 0.00,                                             
     IsNull( SUM( ( ROUND( (FLOOR((ASCII(t1.TI_OPER)/67)) * t1.IM_MVTO_CNTB), 2))), 0) -                                              
     IsNull( SUM( ( ROUND( (FLOOR((65/ASCII(t1.TI_OPER))) * t1.IM_MVTO_CNTB), 2))), 0), "S"    , MAX(t1.FE_ASTO_CNTB)    
     From TXMVTO_CNTB t1                      
     Left Outer Join TMAUXI_EMPR t2                       
    On t2.CO_EMPR = t1.CO_EMPR            
       And t2.TI_AUXI_EMPR = t1.TI_AUXI_EMPR                                 
       And t2.CO_AUXI_EMPR = t1.CO_AUXI_EMPR                    
     Where t1.CO_EMPR = "'+ @ISCO_EMPR +'"                                    
     And t1.NU_CNTB_EMPR = '+ @INNU_CNTB_EMPR +'                                    
     And t1.NU_ANNO = '+ @INNU_ANNO +'                                    
     And t1.NU_MESE <= '+ @INNU_MESE +'                                    
     And t1.CO_CNTA_EMPR = "'+ @CSCO_CNTA_EMPR +'" '+                              
     @VSCA_WHER_LOC1 + '                                           
     And t1.SI_MVTO_CNTB = "APR"                    
     Group By t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR                                  
     Having (IsNull( SUM( ( ROUND( (FLOOR((ASCII(t1.TI_OPER)/67)) * t1.IM_MVTO_CNTB), 2))), 0) -                                              
             IsNull( SUM( ( ROUND( (FLOOR((65/ASCII(t1.TI_OPER))) * t1.IM_MVTO_CNTB), 2))), 0)) <> 0 ')                                    
                                        
    End  --  /*--- FIN  If @VSCO_CNTA_EMPR != 'X' ---*/                                            
                                            
  -- ACTUALIZA IMPORTES A 2 DIGITOS                                            
  If @CSCO_CNTA_QUIE = @VSCO_CNTA_0002                                             
    Begin                                             
     If (@CNIM_MVTO_SALD  <> 0)                          
       Begin                                             
        Select @VNIM_HABE_0002 = @VNIM_HABE_0002 + @CNIM_MVTO_SALD                                             
       End                                             
    End                           
  Else                                             
    Begin                                             
     If @VSST_FLA2 = 'N'                                             
     Begin                                               
       Update #TWSALD_EMPR_Q27_1                                             
       Set IM_DEBE_0002 = NULL,                                             
       IM_HABE_0002 = @VNIM_HABE_0002                                             
       Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                            
     End                                            
     Select @VNIM_HABE_0002 = @CNIM_MVTO_SALD                                             
     Select @VSCO_CNTA_0002 = @CSCO_CNTA_QUIE                                             
    End                                             
                                            
  Select @VSST_FLA2 = 'N'                              
  End                                             
                                     
  /* -- FIN CUENTAS DE PASIVO --*/                                            
                                            
  /* -- INICIO CUENTAS DE PATRIMONIO --*/                                            
                                            
  -- Inserto el Patrimonio como quiebre 3                                            
  If  @CSCO_CNTA_QUIE > '49'                                             
    Begin                                             
     Select @VSST_FLA4 = 'N'                                             
                                            
     -- ACTUALIZA HABER DE LA ULTIMA CUENTA PASIVO                                            
     If @VSST_FLA3 = 'S'                                             
     Begin                                             
       Update #TWSALD_EMPR_Q27_1                                             
     Set IM_DEBE_0002 = NULL,                                             
       IM_HABE_0002 = @VNIM_HABE_0002                                             
       Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                            
     End                                             
                                            
    Insert into #TWSALD_EMPR_Q27_1                                            
    (NU_QUIE_0001, NU_QUIE_0002, DE_QUIE_0002, CO_CNTA_QUIE,                                           
     CO_CNTA_EMPR, DE_CNTA_EMPR, IM_MVTO_TOTA, CO_CNTA_0003, DE_CNTA_0002, DE_CNTA_0003, ST_VISU_0003, ST_VISU_DETA)                                            
    Values(3, 1, 'PATRIMONIO',  @CSCO_CNTA_QUIE,  @CSCO_CNTA_EMPR,           
    @CSDE_CNTA_EMPR,  @CNIM_MVTO_SALD, @CSCO_CNTA_0003, @CSDE_CNTA_0002, @CSDE_CNTA_0003, 'N', 'N')                           
                                            
   -- Acumulo el total para el Patrimonio                                            
  If (@CNIM_MVTO_SALD  <> 0)                                             
    Begin                                             
      Select @VNIM_MVTO_PATR =  @VNIM_MVTO_PATR + @CNIM_MVTO_SALD                                             
    End                 
                                            
  -- ACTUALIZA IMPORTES A 2 DIGITOS                                            
  If @CSCO_CNTA_QUIE = @VSCO_CNTA_0002                                             
   Begin                                             
     If (@CNIM_MVTO_SALD  <> 0)                        
       Begin                                      
        Select @VNIM_HABE_0002 = @VNIM_HABE_0002 + @CNIM_MVTO_SALD                                             
       End                                             
   End                                             
  Else                                             
   Begin                                  
    If @VSST_FLA3 = 'N'                                             
      Begin                                             
       Update #TWSALD_EMPR_Q27_1                                             
       Set IM_DEBE_0002 = NULL,                                             
       IM_HABE_0002 = @VNIM_HABE_0002                                             
       Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                            
      End                                            
     Select @VNIM_HABE_0002 = @CNIM_MVTO_SALD                                  
     Select @VSCO_CNTA_0002 = @CSCO_CNTA_QUIE                                             
    End                                            
                                            
  Select @VSST_FLA3 = 'N'                                             
  End                                            
                                            
  /* -- FIN CUENTAS DE PATRIMONIO --*/                                            
        If SubString(@CSCO_CNTA_EMPR,1, 2) = '59'                                             
   Begin                                             
          Select @VNIM_UTIL = @VNIM_UTIL + @CNIM_MVTO_SALD                                             
        End                                             
                                          
 -- OBTENGO LA MONEDA DE LA CUENTA                                        
                                   
     Fetch CU_TASALD_EMPR_Q27_1 Into @CSCO_CNTA_QUIE, @CSCO_CNTA_0003, @CSCO_CNTA_EMPR,                                                
     @CSDE_CNTA_EMPR,  @CNIM_MVTO_SALD, @CSDE_CNTA_0002, @CSDE_CNTA_0003, @CSTI_CAMB                  
  End /*FIN WHILE*/                                             
            
  If @VSST_FLA4 = 'N'                                             
  Begin                                             
  Update #TWSALD_EMPR_Q27_1                                             
       Set IM_DEBE_0002 = NULL,                                             
      IM_HABE_0002 = @VNIM_HABE_0002                                             
       Where CO_CNTA_QUIE = @VSCO_CNTA_0002                                            
  End                                            
                                            
  Close CU_TASALD_EMPR_Q27_1                                             
  Deallocate CU_TASALD_EMPR_Q27_1                                                        
--  End If  /*-- FIN ISTI_REPO = 'A' --*/                                            
                                 
  -- SE COMENTO VISUALIZACION                                           
/*  Update #TWSALD_EMPR_Q27_1                                           
  Set ST_VISU_0003 = 'S'                                             
  Where CO_CNTA_EMPR LIKE '10%'*/                                            
                          
---- CASO SALDO DE LAS CUENTAS DE ORDEN ES DEUDOR (> 0) ENTONCES SE SUMA AL ACTIVO                       
---- CASO SALDO DE LAS CUENTAS DE ORDEN ES ACREEDOR (< 0) ENTONCES SE SUMA AL PASIVO                          
                          
 If @VNIM_CNTA_ORDE > 0                           
    Begin                           
    Select @VNIM_MVTO_ACTI = @VNIM_MVTO_ACTI + @VNIM_CNTA_ORDE                          
    End                           
 If @VNIM_CNTA_ORDE < 0                           
    Begin                           
    Select @VNIM_MVTO_PASI = @VNIM_MVTO_PASI + @VNIM_CNTA_ORDE                          
    End                       
                                            
  Update #TWSALD_EMPR_Q27_1                                            
  Set IM_TOTA_ACTI = @VNIM_MVTO_ACTI,                                            
  IM_TOTA_PASI = @VNIM_MVTO_PASI,                                            
  IM_TOTA_PATR = @VNIM_MVTO_PATR,                                            
  IM_UTIL = @VNIM_UTIL                                            
                                
 -- QRP                       
 If @ISTI_REPO = 'R'                                             
 Select t1.NU_QUIE_0001, t1.NU_QUIE_0002,                                            
 t1.DE_QUIE_0002, t1.CO_CNTA_QUIE, t1.CO_CNTA_0003, t1.DE_CNTA_0002, t1.DE_CNTA_0003,                                            
 t1.CO_CNTA_EMPR, t1.DE_CNTA_EMPR,                                            
 t1.IM_MVTO_TOTA, ST_VISU_0003, t1.IM_DEBE_0002, t1.IM_HABE_0002, t1.IM_DEBE_0003, t1.IM_HABE_0003,                                            
 t1.TI_AUXI_EMPR,T1.CO_AUXI_EMPR,T1.TI_DOID_SUNA,T1.NU_DOCU_SUNA,t1.NO_AUXI, t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU,                                            
 t1.CO_MONE, t1.IM_DETA_ORIG, t1.IM_DETA_CNTB, t1.ST_VISU_DETA,                                            
 t1.IM_TOTA_ACTI, t1.IM_TOTA_PASI, t1.IM_TOTA_PATR, t1.IM_UTIL, t1.FE_VENC,                                           
 ROUND(t1.FA_CAMB,3)       , T1.FE_ASTO_CNTB                                   
 From #TWSALD_EMPR_Q27_1 t1                                       
Where (t1.IM_MVTO_TOTA <> 0 Or t1.IM_MVTO_TOTA Is NULL)                                       
 Order by t1.DE_QUIE_0002, t1.CO_CNTA_QUIE,                                             
 t1.CO_CNTA_0003, t1.CO_CNTA_EMPR, t1.NU_QUIE_0001, t1.NU_QUIE_0002,  t1.ST_VISU_DETA,                                            
 --t1.TI_AUXI_EMPR, T1.CO_AUXI_EMPR, t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU                        
 T1.TI_DOID_SUNA,T1.NU_DOCU_SUNA, t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU                        
                                                       
                                       
 -- TABLA                                            
 If @ISTI_REPO = 'T'    
Select t1.DE_QUIE_0002 AS TITULO, t1.CO_CNTA_QUIE AS CUENTA_2DIGITOS, t1.CO_CNTA_0003 AS CUENTA_3DIGITOS,                                            
 t1.DE_CNTA_0002 AS DESC_CUENTA_2DIGITOS, t1.DE_CNTA_0003 AS DESC_CUENTA_3DIGITOS,                                            
 t1.CO_CNTA_EMPR AS CUENTA, t1.DE_CNTA_EMPR AS DES_CUENTA,                                            
 t1.IM_MVTO_TOTA AS SALDO_CUENTA, t1.IM_DEBE_0002 AS DEBE_2DIGITOS, t1.IM_HABE_0002 AS HABER_2DIGITOS,                                 
 t1.IM_DEBE_0003 AS DEBE_3DIGITOS, t1.IM_HABE_0003 AS HABER_3DIGITOS,                                            
 t1.TI_AUXI_EMPR AS TIPO_AUXILIAR, t1.CO_AUXI_EMPR AS COD_AUXILIAR,T1.TI_DOID_SUNA AS TIP_DOCU_SUNA,T1.NU_DOCU_SUNA AS NUM_DOCU_SUNA, t1.NO_AUXI NOMBRE_AUXILIAR,                                             
 t1.IM_DETA_ORIG AS  IMPORTE_DETALLE_ORIGEN, t1.IM_DETA_CNTB AS IMPORTE_DETALLE_CONTABLE,                     
 t1.IM_TOTA_ACTI AS ACTIVO, t1.IM_TOTA_PASI AS PASIVO, t1.IM_TOTA_PATR AS PATRIMONIO, t1.IM_UTIL AS UTILIDAD                                           
 From #TWSALD_EMPR_Q27_1 t1                                            
 Where (t1.IM_MVTO_TOTA <> 0 Or t1.IM_MVTO_TOTA Is NULL)                                            
 Order by t1.NU_QUIE_0001, t1.NU_QUIE_0002, t1.CO_CNTA_QUIE, t1.CO_CNTA_0003, t1.CO_CNTA_EMPR, t1.ST_VISU_DETA,                      
-- t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU                                            
 T1.TI_DOID_SUNA, T1.NU_DOCU_SUNA, t1.FE_DOCU, t1.TI_DOCU, t1.NU_DOCU      
      
End   -- FIN AS BEGIN                                      
/*----------------------------- Fin ---------------------------------*/           
          
        
      
      
GO
